You can use the functions GetEOF and SetEOF to get or set the logical end-of-file of an open file.
You can use the GetEOF function to determine the current logical end-of-file of an open file.
FUNCTION GetEOF (refNum: Integer; VAR logEOF: LongInt): OSErr;
The GetEOF function returns, in the logEOF parameter, the logical end-of-file of the specified file.
For a description of the logical and physical end-of-file, see the section "File Access Characteristics" .
You can use the SetEOF function to set the logical end-of-file of an open file.
FUNCTION SetEOF (refNum: Integer; logEOF: LongInt): OSErr;
The SetEOF function sets the logical end-of-file of the specified file. If you attempt to set the logical end-of-file beyond the physical end-of-file, the physical end-of-file is set 1 byte beyond the end of the next free allocation block; if there isn't enough space on the volume, no change is made, and SetEOF returns dskFulErr as its function result.
If you set the logEOF parameter to 0, all space occupied by the file on the volume is released. The file still exists, but it contains 0 bytes. Setting a file fork's end-of-file to 0 is therefore not the same as deleting the file (which removes both file forks at once).
For a description of the logical and physical end-of-file, see the section "File Access Characteristics" .